layui.use(['table','jquery'],function (){
    var table = layui.table;
    var $ = layui.$;

    //表格数据渲染
    //第一个实例
    table.render({
        //实例id，用于选中数据
        id: 'userTableReload'
        ,elem: '#user-table'
        ,url: '/user/table' //数据接口
        ,cols: [
            [
                //复选框
                {type: 'checkbox'}
                //用户名列
                , {field: 'username', title: '用户名', width: 80}
                //邮箱列
                , {field: 'email', title: '邮箱', width: 170, sort: true}
                //个人描述列
                ,{field: 'description', title: '个人描述', width:230,templet:function (d){
                    if (d.description == null || d.description == ""){
                        return '这个人很懒，什么都没有留下'
                    }else {
                        return d.description;

                    }
                }}
                //手机号列
                ,{field: 'phone', title: '电话号', width: 150,sort: true}
                //地址列
                ,{field: 'address', title: '地址', width: 115,templet: function (d){
                    if (d.address == null || d.address == ""){
                        return "地球"
                    }else {
                        return d.address;
                    }
                }}
                ,{field: 'sex', title: '性别', width: 80,templet:function (d){
                    if (d.sex == 1){
                        return '男';
                    }else if (d.sex == 0){
                        return '女'
                    }else {
                        return '未知'
                    }
                }}
                ,{field: 'createTime', title: '创建时间', width: 180,sort: true}
                ,{fixed: 'right', title:'操作', toolbar: '#barDemo', width:150}
            ]
        ]
        ,page: true
        ,limit: 10
        ,limits: [10, 20, 30, 50, 100]
        ,parseData: function(res){//将原始数据解析成 table 组件所规定的数据
            var result;
            if(this.page.curr){
                result = res.data.slice(this.limit*(this.page.curr-1),this.limit*this.page.curr);
            }
            else{
                result=res.data.slice(0,this.limit);
            }
            return {
                "code": res.code, //解析接口状态
                "msg": res.msg, //解析提示文本
                "count": res.count, //解析数据长度
                "data": result //解析数据列表
            };
        }
    });


    //右边操作栏操作事件
    //监听行工具事件
    table.on('tool(test)', function(obj){
        var data = obj.data;
        if(obj.event === 'del'){
            layer.confirm('真的删除行么', function(index){
                if (data.type == 0){
                    layer.msg('对不起你没有权限');
                    layer.close(index)
                }else {
                    //逻辑删除，html删除，数据并没有删除
                    obj.del();
                    layer.close(index)
                    //真实删除
                    $.ajax({
                        type: "post",
                        url: "/user/table/deleteById",
                        data: {
                            "id": data.id
                        },
                        success: function (res){
                            if (res.state == false){
                                layer.msg(res.msg);
                            }
                        }
                    })
                }
            });
        } else if(obj.event === 'edit'){
            layer.prompt({
                title: data.username+'的详细信息'
                ,formType: 2
                ,value: [
                    '用户名：'+data.username+',\n'+
                    '密码：'+data.password+',\n'+
                    '邮箱：'+data.email+',\n'+
                    '个人描述：'+data.description+',\n'+
                    '电话：'+data.phone
                ]
            }, function(value, index){
                obj.update({
                    email: value
                });
                layer.close(index);
            });
        }
    });

    /*
    * 根据id批量删除
    * */
    $("#userTableDeleteBtn").click(function () {
        //获取复选框选中的数据
        var allData = table.checkStatus('userTableReload').data;
        if (allData.length == 0) {
            layer.msg('请选择删除的数据');
            return;
        }
        if (allData.length == 1) {
            if (allData[0]["type"] == 0){
                layer.msg('本条数据您没有权限删除');
                return;
            }
        }
        //判断是否是管理员
        for (var i = 0; i < allData.length; i++) {
            if (allData[i]["type"] == 0){
                layer.msg('第'+(i+1)+'个数据您没有权限删除');
                return;
            }
        }
        var deleteIds = getTableIds();

        //询问框
        layer.confirm('确定删除这'+(deleteIds.length)+'条数据吗?', {
            btn: ['确定','再想想'] //按钮
        }, function(){
            $.ajax({
                url: "/user/table/deleteByIds",
                type: "post",
                dataType: "json",
                //必须加上这段代码
                contentType : "application/json;charsetset=UTF-8",
                data: JSON.stringify(deleteIds),
                success: function (res){
                    if (res.state == true){
                        layer.msg('删除成功');
                        //表格重载
                        reloadUserTable();
                    }else if (res.state == false){
                        layer.msg(res.msg);
                    }
                }
            })
        });
    })

    /**
     * 获取用户表格所有id
     */
    function getTableIds() {
        var ids = []
        var dataLen = table.checkStatus('user-table').data.length;
        for (var i = 0; i < dataLen; i++) {
            ids[i] = table.checkStatus('user-table').data[i]["id"]
        }
        return ids;
    }

    /**
     * 表格数据重载
     */
    // function reloadUserTable(){
    //     //执行重载
    //     table.reload('userTableReload', {
    //         page: {
    //             curr: 1 //重新从第 1 页开始
    //         }
    //     });
    // }
})
